<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" charset="utf-8">
        //第二种形式，构造函数式
        /**
         * 函数的第一个字母大写（类的模板）
         */
        function Person(name,age,sex){
            this.name = name;
            this.age = age;
            this.sex = sex;
            this.sayName = function () {
                alert(this.name);
            }
        }
        //构造一个对象，new关键字，执行模板代码，返回对象
        var p1 = new Person('小1',20,'男');
        var p2 = new Person('小2',21,'女');
        //alert(p1.name);
        //alert(p1.constructor==Person);
        //alert(p2.constructor==Person);
        //alert(p1 instanceof Person);
        //alert(p1 instanceof Object);
        //2、作为普通的函数去调用
        var p3 = Person('小四',25,'男');//在全局环境里定义属性并赋值，直接定义在window上
        //3、在另外一个对象的作用域中调用
        var obj = new Object();
        Person.call(obj,'小五',26,'女');
        alert(obj.name);
    </script>
</head>
<body>
</body>
</html>